gdk/wayland/surface: Expose gdk_wayland_surface_get_wl_egl_window()
authorVivek Kasireddy <vivek.kasireddy@intel.com>
Tue, 29 Dec 2020 02:20:04 +0000 (18:20 -0800)
committerVivek Kasireddy <vivek.kasireddy@intel.com>
Tue, 29 Dec 2020 02:20:04 +0000 (18:20 -0800)
Some GTK based applications such as Qemu UI create and manage
EGLSurfaces associated with the relevant GdkSurfaces. In order to create
an EGLSurface, there needs to be a way to pass the native window
object to eglCreateWindowSurface(). While running in an X environment,
the native window object can be obtained by calling
gdk_x11_surface_get_xid(). Likewise, the native window object can be
obtained by calling gdk_wayland_surface_get_wl_egl_window() while
running in a Wayland environment. Therefore, this API needs to be
exposed to apps.

Signed-off-by: Vivek Kasireddy <vivek.kasireddy@intel.com>
gdk/wayland/gdksurface-wayland.c
gdk/wayland/gdkwaylandsurface.h

index dd0d1891fa405836c977d8e498bbde9b885ecc26..296acdf2bbd13abf347a47f94064b7c70517cc28 100644 (file)
@@ -4209,7 +4209,7 @@ gdk_wayland_surface_get_wl_output (GdkSurface *surface)
   return NULL;
 }
 
-static struct wl_egl_window *
+struct wl_egl_window *
 gdk_wayland_surface_get_wl_egl_window (GdkSurface *surface)
 {
   GdkWaylandSurface *impl = GDK_WAYLAND_SURFACE (surface);
index 851a4d5607fea1cdfde191a7fe7b5c351f8f5d1f..180903ff7c0fcf0e6e873c068c058d0e9cb114c4 100644 (file)
@@ -62,6 +62,9 @@ GType                    gdk_wayland_popup_get_type               (void);
 GDK_AVAILABLE_IN_ALL
 struct wl_surface       *gdk_wayland_surface_get_wl_surface       (GdkSurface *surface);
 
+GDK_AVAILABLE_IN_ALL
+struct wl_egl_window    *gdk_wayland_surface_get_wl_egl_window    (GdkSurface *surface);
+
 typedef void (*GdkWaylandToplevelExported) (GdkToplevel *toplevel,
                                             const char  *handle,
                                             gpointer     user_data);